<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Organizacion_domicilio_frm( $this );

	class Organizacion_domicilio_frm extends Frm
	{
	function Organizacion_domicilio_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncGrupo'] 			= new Input( "Codigo Agenda", "ncGrupo", '', false, true );
			$this->aFields['ncUsuario'] 			= new Input( "Codigo Usuario", "ncUsuario", '', false, true );
			$this->aFields['ncOrganizacion'] 	= new Input( "Codigo Organizacion", "ncOrganizacion", '', false, true );
			$this->aFields['ncTipoDomicilio']	= new InputList ( "Tipo", "ncTipoDomicilio" );
			$this->aFields['bPorOmision']		= new InputList ( "Principal", "bPorOmision" );
	}
	function setValue( $ncOrganizacion, $ncDomicilio )
		{
			$this->aFields['ncOrganizacion']->setValue( $ncOrganizacion );
			$cSql = "SELECT ncTipoDomicilio, bPorOmision, ODo.ncDomicilio, Org.ncVisibilidad, Org.ncGrupo, Org.ncUsuario
								FROM atOrganizacionDomicilio as ODo
								JOIN atOrganizacion as Org
									ON Org.ncOrganizacion = ODo.ncOrganizacion
								WHERE ODo.ncOrganizacion = $ncOrganizacion
										AND ncDomicilio = $ncDomicilio";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
			return $aRow;
		}
	function initializeForm()
		{
			// Configura el Titulo
				$this->setLabel( "Domicilio de Organizacion" );
			return true;
		}
	function make ( $nOption = '')
		{
			$this->mergeOptions( $cOptions );
			$this->aFields['ncDomicilio'] = $this->oModule->loadClass( 'Domicilio_frm' );
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() &&  $this->aFields['ncOrganizacion']->getValue() && $this->aFields['ncDomicilio']->getValue() )
				{
					$aRow = $this->setValue( $this->aFields['ncOrganizacion']->getValue() , $this->aFields['ncDomicilio']->getValue());
					$ncMiGrupo = obtenerMiGrupo();
					$bPermisoEscritura = ($aRow['ncVisibilidad'] == VISIBILIDAD_PUBLICO || $aRow['ncGrupo'] == $ncMiGrupo);
					if ( !$bPermisoEscritura )
					{
						$bPermisoLectura = ($aRow['ncVisibilidad'] != VISIBILIDAD_PRIVADO || $aRow['ncGrupo'] == $ncMiGrupo);
						if ( $bPermisoLectura )
						{
							$oDet = $this->oModule->loadClass( 'domicilio_lst' );
							$oDet->makeDet();
							return true;
						} else
						{
							addMessage( "No tiene permisos" );
							return false;
						}
					}
				}
			return parent::make( $nOption );
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'bPorOmision':
					$oField->setBool( );
					break;
				case 'ncTipoDomicilio':
					$oField->setMandatory( $this->isMandatory() );
					$cSql = "SELECT ncTipoDomicilio, cdTipoDomicilio FROM acTipoDomicilio ";
					$oField->setMatrix( $this->oDatabase->getMatrix($cSql) );
				break;
				case 'ncDomicilio':
					$oField->setLabel("Domicilio");
					$oField->setFormName( $this->getFormName() );
					$oField->setOptionsLevel(2);
					$oField->setOptionsType( 'N');
				break;
			}
		}
	}
?>